模式定义

简单工厂模式又称为静态工厂方法,在简单工厂模式中可以根据参数的不同返回不同类的实例,简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常具有共同的父类。

模式结构

  • Factory:工厂角色,负责实现创建所有实例的内部逻辑
  • Product:抽象产品角色,是所创建的所有对象的父类,负责描述所有实例共有的公共接口
  • ConcreteProduct:具体产品角色。

代码实现

  • Product抽象类

    1
    2
    3
    public interface Product {
    void use();
    }

    Product类仅仅提供一个接口,具体不同的商品实现不同的use()方法。

  • ConcreteProductA

    1
    2
    3
    4
    5
    6
    public class ConcreteProductA implements Product {
    @Override
    public void use() {
    System.out.println("ConcreteProductA...");
    }
    }
  • ConcreteProductB

    1
    2
    3
    4
    5
    6
    public class ConcreteProductB implements Product {
    @Override
    public void use() {
    System.out.println("ConcreteProductB...");
    }
    }
  • SimpleFactory

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class SimpleFactory {
    public static Product createProduct(String name) {
    if (name.equals("A")) {
    return new ConcreteProductA();
    } else if (name.equals("B")) {
    return new ConcreteProductB();
    }
    return null;
    }
    }
  • Test

    1
    2
    3
    4
    5
    6
    public class Test {
    public static void main(String[] args) {
    Product product = SimpleFactory.createProduct("A");
    product.use();
    }
    }